package ib_model.src;

//
// OBUF: send messages on the wire (merging flow control packets)
//
simple IBOutBuf
{
    parameters:
		bool enabled = default(true); // set to false to turn OFF the link
        int size;                  // the number of flits the Q can store
        int maxVL;                    // Maximum VL we send on
        double credMinTime @unit(us); // time between VL Credit packets
						  // NOTE: need to adjust if width change
        int isHcaOBuf;
        int on_throughput_obuf = default(0);
        double timeStep_us @unit(us); // timestep for throughput calculation
    gates:
        input in;
        input rxCred;
        output out;
        output free;
}